﻿using Dapper;
using Estsh.Core.Base;
using Estsh.Core.Model.Extend.Models;
using Estsh.Core.Models;
using Estsh.Core.Repositories;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Estsh.Core.Wms.IRepositories
{
    public interface IRecommendedInStockRepository : IBaseRepository<BaseEntity>
    {
        public List<SysStock> GetStockByCarton(string cartonNo);
        public List<SysZonePart> GetZonePartByVendorId(int VendorId);
        public List<SysStock> GetStockByLocate(string locateName);
        public List<SysStock> GetStockPartByGroupNo(string groupNo);
        public List<SysZonePart> GetZonePartByPartNo(string partNo);
        public List<SysLocate> GetLocateByZoneName(string zoneName);
        public List<SysLocate> GetLocateByZoneNameAndPartNo(string zoneName,string partNo);
        public SysStock GetStockByLocateName(string locateName);
        public List<SysStock> GetStockByPartNoLocateName(string locateName);
        public List<SysLocate> GetLocateInfoByLocateName(string locateName);
        public List<SysStock> GetStockQtyByGroupNo(string groupNo);
        public List<SysStock> GetStockInfoByGroupNo(string groupNo);
        public List<SysStock> GetStockInfoByLocateName(string locateName);
        public List<SysStock> GetStockInfoByInGroupNo(string groupNo);
        public List<SysStock> GetStockInfoByInCartonNo(string cartonNo);
        public int SQLTransaction(List<string> sqlStrings, List<DynamicParameters> parameterList);

        public List<WmsRackPackage> GetWmsRackPackageType(string cartonNo);
        public List<SysStock> GetWmsRackPackageByStock(string cartonNo);
        public List<SysStock> GetWmsByStock(string cartonNo);

		public List<SysStock> GetUpdateStockByGroupNo(string groupNo);
		public List<WmsRackPackage_Extend> GetStockOrRackList(string cartonNo);
		public void GetStockOrRackList2(WmsRackPackage_Extend wmsRack);
		public void GetStockOrRackList3(WmsRackPackage_Extend wmsRack);

		public List<SysStock> GetStockByStatusByCartonNo(string cartonNo);

		public List<WmsOutstockDetail> GetOutstockDetailList(string cartonNo, string partId);

	}
}
